{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "2eb7d818-6bd6-4cfe-a3f4-086f1e10c215",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[3.9694986 ]\n",
      " [2.84386462]\n",
      " [5.21032307]]\n",
      "[[1. 0. 0.]\n",
      " [1. 2. 1.]]\n",
      "[[ 3.9694986 ]\n",
      " [14.86755092]]\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi4AAAGiCAYAAADA0E3hAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAOIBJREFUeJzt3X10VdWB9/HfTUIuLyZBwLw1ISJEEBDkTRJAAVtQpnWJumpnfIYFLdPB8WWG8nT51jWPuOoQ0ZYuZ2wZmVLsPDOK7SDWZ1SUWUIQAgoYBFEoWJBgExAlLwQIJjnPH8d7cw83IbnJfTn73O9nrbs0l51798m955zf2XufvX2WZVkCAAAwQEqiKwAAANBVBBcAAGAMggsAADAGwQUAABiD4AIAAIxBcAEAAMYguAAAAGMQXAAAgDEILgAAwBgEFwAAYIyIgsvKlSs1ZswYZWZmKjMzU6WlpXrjjTeC/75gwQL5fD7Ho6SkJOqVBgAAySktksIFBQV68sknNWzYMEnSb3/7W912222qrKzUqFGjJEm33HKL1qxZE/yd9PT0KFYXAAAkM19PF1kcMGCAnn76aS1cuFALFixQbW2tXnnllShVDwAAoE1ELS6hWlpa9Pvf/16NjY0qLS0NPr9582ZlZ2erf//+mj59uv7pn/5J2dnZHb5OU1OTmpqagj+3trbqyy+/1MCBA+Xz+bpbPQAAEEeWZamhoUH5+flKSYnhEForQnv37rX69etnpaamWllZWdZrr70W/Le1a9da//3f/23t27fPevXVV62xY8dao0aNss6fP9/h6z322GOWJB48ePDgwYOHBx5VVVWRRouIRNxVdOHCBR07dky1tbVat26dfv3rX6u8vFwjR44MK1tdXa2ioiKtXbtWd9xxR7uvd3GLS11dnQYPHqyqqiplZmZGUjUAAJAg9fX1KiwsVG1trbKysmL2PhF3FaWnpwcH506cOFE7d+7UM888o+eeey6sbF5enoqKinTo0KEOX8/v98vv94c9H7hzCQAAmCPWwzx63AllWZajxSTUF198oaqqKuXl5fX0bQAAACJrcXn00Uc1Z84cFRYWqqGhQWvXrtXmzZu1YcMGnTlzRkuXLtWdd96pvLw8HT16VI8++qgGDRqk22+/PVb1BwAASSSi4HLixAnNmzdP1dXVysrK0pgxY7RhwwbNmjVL586d0759+/Tv//7vqq2tVV5enmbOnKmXXnpJGRkZsao/AABIIj2exyXa6uvrlZWVpbq6Osa4AABgiHidv1mrCAAAGIPgAgAAjEFwAQAAxiC4AAAAYxBcAACAMQguAADAGAQXAABgDIILAAAwBsEFAAAYg+ACAACMQXABAADGILgAAABjEFwAAIAxCC4AAMAYBBcAAGAMggsAADAGwQUAABiD4AIAAIxBcAEAAMYguAAAAGMQXAAAgDEILgAAwBgEFwAAYAyCCwAAMAbBBQAAGIPgAgAAjEFwAQAAxiC4AAAAYxBcAACAMQguAADAGAQXAABgDIILAAAwBsEFAAAYg+ACAACMQXABAADGILgAAABjEFwAAIAxCC4AAMAYBBcAAGAMggsAADAGwQUAABiD4AIAAIwRUXBZuXKlxowZo8zMTGVmZqq0tFRvvPFG8N8ty9LSpUuVn5+vPn36aMaMGdq/f3/UKw0AAJJTRMGloKBATz75pHbt2qVdu3bppptu0m233RYMJ0899ZRWrFihZ599Vjt37lRubq5mzZqlhoaGmFQeAAAkF59lWVZPXmDAgAF6+umn9YMf/ED5+flavHixHnroIUlSU1OTcnJytHz5ci1atKjd329qalJTU1Pw5/r6ehUWFqqurk6ZmZk9qRoAAIiT+vp6ZWVlxfz83e0xLi0tLVq7dq0aGxtVWlqqI0eOqKamRrNnzw6W8fv9mj59uioqKjp8nbKyMmVlZQUfhYWF3a0SAADwuIiDy759+3TZZZfJ7/frnnvu0fr16zVy5EjV1NRIknJychzlc3Jygv/WnkceeUR1dXXBR1VVVaRVAgAASSIt0l8YPny49uzZo9raWq1bt07z589XeXl58N99Pp+jvGVZYc+F8vv98vv9kVYDAAAkoYhbXNLT0zVs2DBNnDhRZWVlGjt2rJ555hnl5uZKUljrysmTJ8NaYQAAALqjx/O4WJalpqYmDRkyRLm5udq4cWPw3y5cuKDy8nJNmTKlp28DAAAQWVfRo48+qjlz5qiwsFANDQ1au3atNm/erA0bNsjn82nx4sVatmyZiouLVVxcrGXLlqlv3766++67Y1V/AACQRCIKLidOnNC8efNUXV2trKwsjRkzRhs2bNCsWbMkSQ8++KDOnTune++9V6dPn9bkyZP11ltvKSMjIyaVBwAAyaXH87hEW7zuAwcAANHj+nlcAAAA4o3gAgAAjEFwAQAAxiC4AAAAYxBcAACAMQguAADAGAQXAABgDIILAAAwBsEFAAAYg+ACAACMQXABAADGILgAAABjEFwAAIAxCC4AAMAYBBcAAGAMggsAADAGwQUAABiD4AIAAIxBcAEAAMYguAAAAGMQXAAAgDEILgAAwBgEFwAAYAyCCwAAMAbBBQAAGIPgAgAAjEFwAQAAxiC4AAAAYxBcAACAMQguAADAGAQXAABgDIILAAAwBsEFAAAYg+ACAACMQXABAADGILgAAABjEFwAAIAxCC4AAMAYBBcAAGAMggsAADAGwQUAABiD4AIAAIwRUXApKyvTpEmTlJGRoezsbM2dO1cHDx50lFmwYIF8Pp/jUVJSEtVKAwCA5BRRcCkvL9d9992nHTt2aOPGjWpubtbs2bPV2NjoKHfLLbeouro6+Hj99dejWmkAAJCc0iIpvGHDBsfPa9asUXZ2tnbv3q0bb7wx+Lzf71dubm6XXrOpqUlNTU3Bn+vr6yOpEgAASCI9GuNSV1cnSRowYIDj+c2bNys7O1tXX321fvjDH+rkyZMdvkZZWZmysrKCj8LCwp5UCQAAeJjPsiyrO79oWZZuu+02nT59Wu+8807w+ZdeekmXXXaZioqKdOTIEf3jP/6jmpubtXv3bvn9/rDXaa/FpbCwUHV1dcrMzOxO1QAAQJzV19crKysr5ufviLqKQt1///3au3evtm7d6nj+e9/7XvD/R48erYkTJ6qoqEivvfaa7rjjjrDX8fv97QYaAACAi3UruDzwwAN69dVXtWXLFhUUFFyybF5enoqKinTo0KFuVRAAACAgouBiWZYeeOABrV+/Xps3b9aQIUM6/Z0vvvhCVVVVysvL63YlAQAApAgH59533336j//4D73wwgvKyMhQTU2NampqdO7cOUnSmTNn9OMf/1jbt2/X0aNHtXnzZt16660aNGiQbr/99phsAAAASB4RDc71+XztPr9mzRotWLBA586d09y5c1VZWana2lrl5eVp5syZ+ulPf9rlu4XiNbgHAABEjysH53aWcfr06aM333yzRxUCAADoCGsVAQAAYxBcAACAMQguAADAGAQXAABgDIILAAAwBsEFAAAYg+ACAACMQXABAADGILgAAABjEFwAAIAxCC4AAMAYBBcAAGAMggsAADAGwQUAABiD4AIA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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.linear_model import LinearRegression\n",
    "\n",
    "X1= 2 * np.random.rand(100, 1)\n",
    "X2= 2 * np.random.rand(100, 1)\n",
    "Y= 4 + 3 * X1 + 5 * X2 + np.random.randn(100, 1)\n",
    "X0=np.ones((100,1))\n",
    "X=np.c_[X0,X1,X2]\n",
    "Theta=np.linalg.inv(X.T.dot(X)).dot(X.T).dot(Y)\n",
    "print(Theta)\n",
    "my_list=[0,0,2,1]\n",
    "X_new=np.array(my_list)\n",
    "X_new=X_new.reshape(2,2)\n",
    "X_new_b=np.c_[np.ones((2,1)),X_new]\n",
    "print(X_new_b)\n",
    "Y_predict=X_new_b.dot(Theta)\n",
    "print(Y_predict)\n",
    "plt.plot(X_new[:,0],Y_predict,'r-')\n",
    "plt.plot(X1,Y,'b.')\n",
    "plt.xlim(0,2)\n",
    "plt.ylim(0,35)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fcc574f8-7af5-4554-819f-1c7099db8b87",
   "metadata": {},
   "source": [
    "公式法计算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "e091ea38-7357-4fdb-a817-48657f8e9a2c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[3.9694986] [[0.         2.84386462 5.21032307]]\n",
      "[[ 3.9694986 ]\n",
      " [14.86755092]]\n"
     ]
    },
    {
     "data": {
      "image/png": "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ANHj+nlcAAAA4o3gAgAAjEFwAQAAxiC4AAAAYxBcAACAMQguAADAGAQXAABgDIILAAAwBsEFAAAYg+ACAACMQXABAADGILgAAABjEFwAAIAxCC4AAMAYBBcAAGAMggsAADAGwQUAABiD4AIAAIxBcAEAAMYguAAAAGMQXAAAgDEILgAAwBgEFwAAYAyCCwAAMAbBBQAAGIPgAgAAjEFwAQAAxiC4AAAAYxBcAACAMQguAADAGAQXAABgDIILAAAwBsEFAAAYg+ACAACMQXABAADGILgAAABjEFwAAIAxCC4AAMAYBBcAAGAMggsAADAGwQUAABiD4AIAAIwRUXApKyvTpEmTlJGRoezsbM2dO1cHDx50lFmwYIF8Pp/jUVJSEtVKAwCA5BRRcCkvL9d9992nHTt2aOPGjWpubtbs2bPV2NjoKHfLLbeouro6+Hj99dejWmkAAJCc0iIpvGHDBsfPa9asUXZ2tnbv3q0bb7wx+Lzf71dubm6XXrOpqUlNTU3Bn+vr6yOpEgAASCI9GuNSV1cnSRowYIDj+c2bNys7O1tXX321fvjDH+rkyZMdvkZZWZmysrKCj8LCwp5UCQAAeJjPsiyrO79oWZZuu+02nT59Wu+8807w+ZdeekmXXXaZioqKdOTIEf3jP/6jmpubtXv3bvn9/rDXaa/FpbCwUHV1dcrMzOxO1QAAQJzV19crKysr5ufviLqKQt1///3au3evtm7d6nj+e9/7XvD/R48erYkTJ6qoqEivvfaa7rjjjrDX8fv97QYaAACAi3UruDzwwAN69dVXtWXLFhUUFFyybF5enoqKinTo0KFuVRAAACAgouBiWZYeeOABrV+/Xps3b9aQIUM6/Z0vvvhCVVVVysvL63YlAQAApAgH59533336j//4D73wwgvKyMhQTU2NampqdO7cOUnSmTNn9OMf/1jbt2/X0aNHtXnzZt16660aNGiQbr/99phsAAAASB4RDc71+XztPr9mzRotWLBA586d09y5c1VZWana2lrl5eVp5syZ+ulPf9rlu4XiNbgHAABEjysH53aWcfr06aM333yzRxUCAADoCGsVAQAAYxBcAACAMQguAADAGAQXAABgDIILAAAwBsEFAAAYg+ACAACMQXABAADGILgAAABjEFwAAIAxCC4AAMAYBBcAAGAMggsAADAGwQUAABiD4AIA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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "reg=LinearRegression(fit_intercept=True)\n",
    "reg.fit(X,Y)\n",
    "print(reg.intercept_,reg.coef_)\n",
    "Y_predict=reg.predict(X_new_b)\n",
    "print(Y_predict)\n",
    "plt.plot(X_new[:,0],Y_predict,'r-')\n",
    "plt.plot(X1,Y,'b.')\n",
    "plt.xlim(0,2)\n",
    "plt.ylim(0,35)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "735f2ab6-183d-41a1-9a9f-a772b6e7df57",
   "metadata": {},
   "source": [
    "scikit-learn工具计算"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
